package ScalaStudy.chapter06

object test16_TraitSelfType {
  def main(args: Array[String]): Unit = {


    /////////////////////////////////////////////////////////////////////////////////////////
    /////////////////////////////////////   特质自身类型 /////////////////////////////////////
    /////////////////////////////////////////////////////////////////////////////////////////


    val user =  new RegisterUser("wq", "123456")
    user.insert()
  }
}


//用户类
class User(val name:String, val password: String)

trait UserDao{

  _:User =>                         //我把特质UserDao的类型定义成User类型啦

  //向数据库插入数据
  def insert():Unit = {
    println(s"insert into db: ${this.name}")
  }
}

//定义注册用户类
class RegisterUser(name:String, password: String) extends User(name, password) with UserDao